package br.ufrn.cursoResidencia.ui;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
import javax.faces.event.ValueChangeEvent;

import org.json.simple.parser.ParseException;

import br.ufrn.cursoResidencia.dominio.Convenio;
import br.ufrn.cursoResidencia.dominio.Orgao;
import br.ufrn.cursoResidencia.repositorio.ConvenioRestClient;

@SuppressWarnings("serial")
@ManagedBean
@SessionScoped
public class ConvenioMBean implements Serializable {
	
	private String resultado="";
	private List<Orgao> orgaos= new ArrayList<Orgao>();
	private Orgao orgaoSelecionado = new Orgao();
	private List<Convenio> convenios = new ArrayList<Convenio>();
	private Convenio convenio= new Convenio();
	
	private ConvenioRestClient repo; 
	
	@PostConstruct
	public void onInit(){
		repo=new ConvenioRestClient();
		orgaos=repo.getOrgaos();
		
		
	}
	public void buscarConvenios(ValueChangeEvent e){
		if(e.getNewValue()==null)
			convenios=new ArrayList<Convenio>();
		else{
			resultado=e.getNewValue().toString();
			seeConvenios(null);
		}
	}
	
	public String getResultado() {
		return resultado;
	}
	
	public void seeConvenios(ActionEvent ae){
		try {
			convenios=repo.getConvenios(resultado);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (java.text.ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	public void guardarNaBase(ActionEvent ae){
		try{
			
			
		}catch(Exception e){
			
		}
	}
	public void setResultado(String resultado) {
		this.resultado = resultado;
	}

	public List<Orgao> getOrgaos() {
		return orgaos;
	}

	public void setOrgaos(List<Orgao> orgaos) {
		this.orgaos = orgaos;
	}

	public Orgao getOrgaoSelecionado() {
		return orgaoSelecionado;
	}

	public void setOrgaoSelecionado(Orgao orgaoSelecionado) {
		this.orgaoSelecionado = orgaoSelecionado;
	}

	public List<Convenio> getConvenios() {
		return convenios;
	}

	public void setConvenios(List<Convenio> convenios) {
		this.convenios = convenios;
	}
	public Convenio getConvenio() {
		return convenio;
	}
	public void setConvenio(Convenio convenio) {
		this.convenio = convenio;
		if(convenio!=null)
			try {
				repo.carregarDadosConvenio(convenio);
			} catch (ParseException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	}

}
